package com.hbter630.change.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;


/**
 * @Title: SwaggerConfig
 * @Author 笑霸fianl
 * @Package com.hbter630.change.config
 * @Date 2023/5/22 23:40
 * @描述:
 */

@Configuration//配置类
@EnableSwagger2//开启Swagger配置
public class SwaggerConfig {

    //1.Swagger实例Bean是Docket，
//    @Bean
//    public Docket docket(){
//        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo());
//    }

    //配置文档信息
    private ApiInfo apiInfo() {
        //作者信息
        final Contact contact = new Contact(
                "吃嘛嘛香",
                "http://www.xbfinal.top/",
                "https://blog.csdn.net/weixin_52062043"
        );
        return new ApiInfo(
                "吃嘛嘛香-随手换后端接口文档",//标题
                "人和代码有一个能跑就行",//描述
                "v1.0.0",//版本
                "https://blog.csdn.net/weixin_52062043",//服务条款网站
                contact,
                "Apche 2.0",//许可证
                "https://blog.csdn.net/weixin_52062043",//许可网址
                new ArrayList()
        );
    }

    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                //RequestHandlerSelectors配置扫描接口的方式
                //basePackage() 指定扫描的包
                //any() 扫描全部
                //none() 不扫描
                //withClassAnnotation 扫描类上的注解
                .apis(RequestHandlerSelectors.basePackage("com.hbter630.change.controller"))
                //any() // 任何请求都扫描
                //none() // 任何请求都不扫描
                //regex(final String pathRegex)  通过正则表达式控制
                //ant(final String antPattern) 通过ant()控制
                //.paths(PathSelectors.ant())
                .build();
    }



}
